<?php
class RelatoriosMaisVisualizadosDAO implements BaseDAO {
	
	/* Retorna os relatorios mais visualizados */
	public function getMaisVisualizados() {
		$utility = QueryUtility::getInstance();
		
		try {
			$query = $utility->getQuery(QueryConstants::MAIS_VISUALIZADOS,null);
			$conexao = new Conexao();

			$result = $conexao->executar($query);
			
			$relatoriosModelo = $this->mapearResultados($result);
		} catch (Exception $exc) {
			throw $exc;
		}
		return $relatoriosModelo;
	}
	
	/* Mapeia os resultados */
	function mapearResultados($result) {
		if (pg_num_rows($result)== 0) {
			throw new Exception(MensagensConstants::SEM_RESULTADOS);
		}
		
		$relatorios = array();
		while ($row = pg_fetch_assoc($result)) {
			$nome = $row["relatorio_nome"];
			$rId = $row["relatorio_id"];
			$acessos = $row["relatorio_acessos"];
						
			$relatorio = new Relatorio();
			$relatorio->setNome($nome);
			$relatorio->setId($rId);
			$relatorio->setQtdeUtilizacoes($acessos);
			$relatorio->setOperavel(true);

			array_push($relatorios,$relatorio);
		}
		
		return $relatorios;
	}
	
}
?>